package com.taotao.job.core.rpc;

import com.taotao.job.core.executor.ExecutorContext;
import com.taotao.job.core.trigger.TriggerResult;

import java.util.HashMap;

/**
 * 执行器给触发器的接口
 *
 * @author fanbeibei
 * @date 2021/4/3 23:08
 */
public interface ExecutorIface {
    /**
     * 触发执行
     *
     * @param executorContext
     * @return
     */
    TriggerResult triggerRun(ExecutorContext executorContext);

    /**
     * 查询运行进度
     *
     * @param runInstanceId
     * @return
     */
    String getRunRate(Long runInstanceId);

    /**
     * 查询运行进度
     *
     * @return runInstanceId -> runRate
     */
    HashMap<Long, String> getAllRunRate();


    /**
     * 获取队列积压的实例数量
     *
     * @param jobId
     * @return
     */
    int getInstanceInQueueCount(Long jobId);

}
